「圖表最重大的價值在於,它迫使我們注意到從沒預料會看到的東西。」---------John Tukey
在這篇文章,aes() (Aesthetic Mappings 美學映射) 是我們這次主要要介紹的主題,首先我們先看到上次文章中出現的點狀圖。
library(tidyverse)
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy))
雖然它是二維圖形(x,y兩個變數,即displ,hwy),但是我們可以透過aes()使得我們可以看到第三種變數。
我們來回顧一下資料型態:
glimpse(mpg)
其中displ代表的意思是車子的引擎大小,hwy代表的意思是車子在高速公路上的燃油效率。那我們再考慮class這個變數,它的意思是車子的種類。
我們如果執行以下程式碼
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy,color=class))
則我們會看到,除了之前的散佈圖以外,它會依照class的不同,自動的給予不同的顏色,這樣我們就可以看到更多的資訊。
接著我們還可以把color換成size,alpha或是shape試試。
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy,size=class))
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy,alpha=class))
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy,shape=class))
我們會發現,會有各式不同的參數在支援我們繪圖。而且它會自動幫你配好顏色或是形狀,但是其實我們也可以自己設定。
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy),color="blue")
甚至也可以做一些真假值的操作
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy,color=displ<5))
我們還有其他方法可以檢視到第三種變數。
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy))+
facet_wrap(~class,nrow=2)
這個方法就是把我們第一張散佈圖根據不同的class做分類,個別繪製出子圖,nrow的意思代表是要分成幾列去呈現。
除此之外,我們甚至可以去看新增了兩種變數的情況
ggplot(data=mpg)+
geom_point(mapping=aes(x=displ,y=hwy))+
facet_grid(drv~cyl)
如上圖,它會把drv跟cyl再次做成二維網格,有些情況你會希望能做到這類的事情。
今天介紹了點狀圖的一些變形,事實上上述的一些方法也可應用在其他類型的圖形上,我們在之後的文章會陸續介紹到,謝謝大家。